﻿using System;
using System.Linq;

namespace CodeContrib
{
	public class RandomEnum : IRandom<object>
	{
		private readonly RandomItem<object> _randomItem;

		public RandomEnum(Type enumType)
		{
			Guard.NotNull(enumType, "enumType");

			_randomItem = new RandomItem<object>(Enum.GetValues(enumType).Cast<object>());
		}

		public object Next()
		{
			return _randomItem.Next();
		}
	}
}